<%-- 
    Document   : viewAllTrainingplans
    Created on : 14.02.2011, 20:21:40
    Author     : felix
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ include file="header.jsp" %>

<div id="contents">
	<h1>Trainingspläne</h1>
        <div style="text-align: center;">
            <%@ include file="trainingplanPagination.jsp" %>
        </div>
        <br/>
        <table cellpadding="0" cellspacing="0">
	<tr>
            <%
                // Vorherige Seite
                String referrer = request.getHeader("referer");

                // Nur Dateinamen filtern
                int i = referrer.lastIndexOf('/');
                
                if (i > 0) {
                    // Schneide alles vor / ab
                    referrer = referrer.substring(i+1);
                }

                // Falls Besucher von createTrainingplan.jsp kommt und Übungen ausgewählt aber nicht gespeichert hat ...
                if(referrer.equals("createTrainingplan.jsp")){
                    // Lösche zuvor ausgewählte Übungen
                    db.baskets.clearBasketBySessionId(session.getId());
                }

                // 1. Spalte
                // Wenn Parameter order und direction nicht null sind
                if(request.getParameter("order") != null && request.getParameter("direction") != null){
                    // Wenn Parameter order ist name und Parameter direction ist asc
                    if((request.getParameter("order")).equals("name") && (request.getParameter("direction")).equals("asc")){
                        // Link zur absteigenden Ordnung
                        out.print("<th width=\"20%\"><a href=\"viewAllTrainingplans.jsp?order=name&direction=desc");
                    } else {
                        // Link zur aufsteigenden Ordnung
                        out.print("<th width=\"20%\"><a href=\"viewAllTrainingplans.jsp?order=name&direction=asc");
                    }
                } else {
                    // Link zur aufsteigenden Ordnung
                    out.print("<th width=\"20%\"><a href=\"viewAllTrainingplans.jsp?order=name&direction=asc");
                }

                // Wenn Parameter limit nicht null ist ...
                if(request.getParameter("limit") != null) {
                    // füge Limit-Parameter an Link-URL an
                    out.print("&limit=" + request.getParameter("limit") + "\">Name</a></th>");
                } else {
                    // Beende Link-Tag
                    out.print("\">Name</a></th>");
                }

                // 2. Spalte
                // Wenn Parameter order und direction nicht null sind
                if(request.getParameter("order") != null && request.getParameter("direction") != null){
                    // Wenn Parameter order ist date und Parameter direction ist asc
                    if((request.getParameter("order")).equals("date") && (request.getParameter("direction")).equals("asc")){
                        // Link zur absteigenden Ordnung
                        out.print("<th width=\"10%\"><a href=\"viewAllTrainingplans.jsp?order=date&direction=desc");
                    } else {
                        // Link zur aufsteigenden Ordnung
                        out.print("<th width=\"10%\"><a href=\"viewAllTrainingplans.jsp?order=date&direction=asc");
                    }
                } else {
                    // Link zur aufsteigenden Ordnung
                    out.print("<th width=\"10%\"><a href=\"viewAllTrainingplans.jsp?order=date&direction=asc");
                }

                // Wenn Parameter limit nicht null ist ...
                if(request.getParameter("limit") != null) {
                    // füge Limit-Parameter an Link-URL an
                    out.print("&limit=" + request.getParameter("limit") + "\">Datum</a></th>");
                } else {
                    // Beende Link-Tag
                    out.print("\">Datum</a></th>");
                }

            %>
            <th width=\"50%\">Übungen</th>
            <th width=\"30%\" class="actions">Aktionen</th>
	</tr>

        <%
        // Initialisieren trainingsplans
        String[][] trainingplans = null;

        // Wenn Parameter order, direction und limit null sind
        if(request.getParameter("order") != null && request.getParameter("direction") != null && request.getParameter("limit") != null){
            // Trainingspläne geordnet auslesen
            trainingplans = db.trainingplans.getAllTrainingplansOrdered(request.getParameter("order"),request.getParameter("direction"),request.getParameter("limit"),session.getAttribute("typeofsport").toString());
        } else if (request.getParameter("order") != null && request.getParameter("direction") != null && request.getParameter("limit") == null) {
            // Trainingspläne geordnet auslesen
            trainingplans = db.trainingplans.getAllTrainingplansOrdered(request.getParameter("order"),request.getParameter("direction"),null,session.getAttribute("typeofsport").toString());
        } else if (request.getParameter("order") == null && request.getParameter("direction") == null && request.getParameter("limit") != null) {
            // Trainingspläne geordnet auslesen
            trainingplans = db.trainingplans.getAllTrainingplansOrdered(null,null,request.getParameter("limit"),session.getAttribute("typeofsport").toString());
        } else {
            // Trainingspläne geordnet auslesen
            trainingplans = db.trainingplans.getAllTrainingplansOrdered(null,null,null,session.getAttribute("typeofsport").toString());
        }

        // Für jeden Trainingsplan
        for(String trainingplan[]: trainingplans){
            // Erstelle eine neue Zeile in der Tabelle
            out.print("<tr>\n");

            // Zeige Name
            out.print("<td valign=\"top\">" + trainingplan[1] + "</td>\n");

            // Zeige Datum
            out.print("<td valign=\"top\">" + trainingplan[2] + "</td>\n");

            // Übungszähler
            int lineCount = 1;
            out.print("<td valign=\"top\">");

            // Lies alle Übungen eines Trainingsplans
            String[][] traininplanexercises = db.trainingplanexercises.getTraingplanExercisesByTrainingplanId(trainingplan[0]);

            // Für jede Übung
            for(String[] traininplanexercise: traininplanexercises){
                // Zeige Übungsnamen
                out.print(lineCount + ". " + db.exercises.getName(traininplanexercise[0]) + "<br/>");

                // Erhöhe Übungszähler
                lineCount++;
            }
            
            out.print("</td>");

            // Spalte mit Aktionen
            out.print("<td valign=\"top\"><a href=\"viewTrainingplan.jsp?id=" + trainingplan[0] + "\"><img src=\"pict/edit.png\"/></a>");
            out.print(" ");
            // Detaillierter Plan
            out.print("<a href=\"PdfServlet?id=" + trainingplan[0] + "&design=normal\" target=\"_top\" alt=\"ausführlicher Plan\"><img src=\"pict/pdf.gif\"/></a>\n");
            out.print(" ");
            // Verkürzter Plan
            out.print("<a href=\"PdfServlet?id=" + trainingplan[0] + "&design=mini\" target=\"_top\" alt=\"minimaler Plan\"><img src=\"pict/green-pdf.gif\"/></a><td>\n");
            out.print("</tr>\n");
        }
        %>
	</table>
        <br/>
        <div style="text-align: center;">
        <%@ include file="trainingplanPagination.jsp" %>
        </div>
</div>
<%@ include file="footer.jsp" %>
